﻿///@author Rafał Hazan
///@email  rafal.hazan@gmail.com

#ifndef __PROGRESS_STP_CONDITION__
#define __PROGRESS_STP_CONDITION__

#include "StopCondition.h"
#include "Configuration.h"
#include "EvolutionaryAlgorithm.h"
#include "CliqueFitnessFunction.h"

/// Implementacja warunku stopu.
/// Warunek stopu jest spelniony, jesli podgraf zawiera wszystkie wierzholki nadgrafu
/// lub przez okreslona liczbe iteracji nie wynik koncowy nie zmienil sie.
class ProgressStopCondition : public StopCondition
{
private:
	int checkNo;
	double bestScore;
public:
	ProgressStopCondition();
	virtual ~ProgressStopCondition() {}
	virtual bool isNotFulfilled(const EvolutionaryAlgorithm::population_type & actualPopulation);
};

#endif